A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has objection to facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office files or records, but otherwise reserves all copyright rights whatsoever.
The present invention relates to user-interactive object oriented programming systems and particularly to such object oriented programming systems which would be available to both program developers and interactive users of such programs, particularly in a networking environment such as the Internet or equivalent proprietary or public networks.
The 1990""s decade has been marked by a technological revolution driven by the convergence of the data processing industry with the consumer electronics industry. The effect has, in turn, driven technologies which have been known and available but relatively quiescent over the years. Two of these technologies are the Internet related distribution and object oriented programming systems. Both of these technologies are embodied in the object oriented Java (xe2x80x9cJavaxe2x80x9d is a trademark of Sun Microsystems, Inc.) programming system. The computer and communications industries have been extensively participating in the development and continual upgrading of the Java system. For details and background with respect to the Java system, reference may be made to a typical text, xe2x80x9cJust Javaxe2x80x9d, 2nd Edition, Peter van der Linden, Sun Microsystems, 1997, or the text, xe2x80x9cThinking in Javaxe2x80x9d, Bruce Eckel, Prentice Hall, 1998. The convergence of the electronic entertainment and consumer industries with data processing exponentially accelerated the demand for wide ranging communication distribution channels, and the World Wide Web or Internet which had quietly existed for over a generation as a loose academic and government data distribution facility reached xe2x80x9ccritical massxe2x80x9d and commenced a period of phenomenal expansion which has not, as yet, abated.
Object oriented programming, which also had been virtually languishing for a generation, offered the ideal distribution vehicle for the Internet. With its potentially interchangeable objects or units within which both data attributes and functions were stored in a predefined uniform framework, as well as the predefined object interfaces with each other, object oriented programming systems have found acceptance as the programming system for the Internet. In all areas of data processing, communications, as well as the electronic entertainment and consumer industries, having anything to do with the Internet, there has been a substantial movement to Java, the Sun Microsystems originated object oriented programming system.
One obvious need of the Internet is the rapid distribution of large amounts of data. Such data is conventionally distributed in compressed form; for example, a large number of data files compressed into a comprehensive file or distribution unit. One such facility, which is used in the distribution of Java files over the Internet, is the Java JAR (Java Archive) utility which makes use of a Zip-like group of files compressed into a single compressed file which is then transmitted over the Internet. These Java Jar compressed files are cross platform or platform independent. They may include audio and video, as well as Java class files. These files are conventionally compressed into a single file containing the collection of zipped files by a conventional compression process such as Sun""s JDK and are transmitted along with a manifest describing them. This Jar utility is described in greater detail on pp. 487-488 of the previously mentioned, xe2x80x9cThinking in Javaxe2x80x9d, Bruce Eckel. The use of Java Jar, Gzip or Zip utilities presumes the availability of some kind of extraction utility at a receiving station in order to extract and then uncompress the files as needed. In view of the vast and varied nature of a distribution network such as the Internet, it is not certain that an appropriate extraction utility will be available at a receiving station.
The present invention solves the above problem by providing a new class of data file storing objects which have the ability to self-extract, i.e. within objects in the new class, there is a method to extract selected individual files stored in the objects. Thus, the present invention provides a computer controlled object oriented programming system having means for interfacing a plurality of programming objects with each other and including at least one data storage object of an object class comprising means within said object for storing a plurality of data files, and means within said object for extracting said stored data files from said object. The invention is most effectively used with Java objects. The compressed files stored in the objects may be program files. The files are usually compressed into a single file for distribution. In accordance with another aspect of the present invention, there is provided for use in creating and loading the data storage objects, a FileAdder object interfacing with a data storage object for adding additional files to said data storage object.